import ChiVoxSDK from 'chivox';
import $ from 'jquery';
import '../css/chivox-example.css';
import '../css/recorder-basic.css';

import Config from './config';

let recorder = null;
let recordId = '';
let mode     = ChiVoxSDK.MODE.HTML5;
//let mode     = ChiVoxSDK.MODE.FLASH;

const options  = {
  recorderid:  'chivox-recorder',
  mode: mode,
  appKey: Config.appKey,
  sigurl: '/token',
  onError: (err) => {
    console.info('[ onError ]:', err);
  },
  onConnectorStatusChange: (code, message) => {
    console.warn('[ onConnectorStatusChange ]:', code, message);
  }
};

let showInfo = (text) => {
  var html = $("#status .message").html();
  html = html + text + "<br/>";
  $("#stauts .message").html(html).scrollTop(10000);
};

const rec_params = {
  duration: 3000,
  playDing: true,
  serverParams: {
    coreType: 'en.word.score',
    refText: 'past',
    rank: 100,
    userId: 'chivox tester'
  },

  onRecordIdGenerated: (code, message) => {
    recordId = message.recordId;
    console.info('[ onRecordIdGenerated ]: ', code, message);
  },

  onStart: () => {
  },

  onStop: () => {
  },

  onScore: (data) => {
    showInfo("获取评分成功：" + JSON.stringify(data));
  },

  onScoreError: (code, message) => {
    showInfo("获取评分失败.", code, message);
  },
};

$("#btncreate").click(() => {
  if (mode == ChiVoxSDK.MODE.FLASH && !ChiVoxSDK.detect_flash_plugin()) {
    ChiVoxSDK.DIALOG.open_flash_error();
    return;
  }

  if (recorder) {
    showInfo("录音机已创建");
  } else {
    recorder = ChiVoxSDK.createRecorder(options);
  }
});

$("#btnrecord").click(() => {
  if (!recorder) {
    console.warn('create a recorder first.');
  }
  else if (!recorder.recording) {
    recorder.record(rec_params);
  } else {
    console.warn('recording in use now.');
  };
});

$("#btnstop").click(() => {
if (!recorder) {
    console.warn('create a recorder first.');
  }
  else if (recorder.recording) {
    recorder.stopRecord();
  } else {
    console.warn('recorder not in use.');
  };
});

$("#btnreplay").click(() => {
  if (!recorder) {
    console.warn('create a recorder first.');
  }
  else if (recordId != '') {
    recorder.startReplay({ recordId: recordId, onStop: () => { console.info('replay stopped'); } });
  } else {
    console.warn('recorderid is null.');
  };
});

$("#btnstopreplay").click(() => {
  if (!recorder) {
    console.warn('create a recorder first.');
  } else {
    recorder.stopReplay();
  };
});

$('#sdkinfo').text(`ChiVoxSDK ver: ${ChiVoxSDK.VERSION}, mode: ${ChiVoxSDK.mode(options.mode)}`);
